package utils

import (
	"fmt"
	"regexp"
)

// 定义邮箱正则
var emailRegex = regexp.MustCompile(`^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$`)

// IsValidEmail 验证邮箱格式
func IsValidEmail(email string) bool {
	return emailRegex.MatchString(email)
}

// ValidatePassword 验证密码强度
func ValidatePassword(password string) error {
	if password == "" {
		return fmt.Errorf("密码不能为空")
	}
	if len(password) < 8 {
		return fmt.Errorf("密码长度至少需要8位字符")
	}
	return nil
}

// ValidateUsername 验证用户名
func ValidateUsername(username string) error {
	if username == "" {
		return fmt.Errorf("用户名不能为空")
	}
	if len(username) < 2 {
		return fmt.Errorf("用户名长度至少需要2位字符")
	}
	return nil
}

// ValidateRequiredFields 验证必填字段
func ValidateRequiredFields(fields map[string]string) []string {
	var missing []string
	for fieldName, fieldValue := range fields {
		if fieldValue == "" {
			missing = append(missing, fieldName)
		}
	}
	return missing
}
